API Documentation
BufferView.h
1 // BufferView.h
3 //
5 
6 namespace nkMemory
7 {
16  template <typename T = unsigned char>
17  class BufferView
18  {
19  public :
20 
21  // Constructors, destructor
33  BufferView (T* data, unsigned long long size) ;
40  BufferView (const Buffer& buffer) ;
49  BufferView (const Buffer& buffer, unsigned long long index, unsigned long long length = 0) ;
56  BufferView (Buffer&& buffer) = delete ;
61  ~BufferView () = default ;
62 
63  public :
64 
65  // Getters
69  T* getData () const ;
73  unsigned long long getSize () const ;
77  bool empty () const ;
81  T& front () ;
85  T& back () ;
86 
87  public :
88 
89  // Conversions
97  BufferView<T> subView (unsigned long long index, unsigned long long length = 0) const ;
98 
99  public :
100 
101  // Operators
108  T& operator[] (unsigned long long index) ;
115  const T& operator[] (unsigned long long index) const ;
116 
117  public :
118 
119  // Constructors templated
125  template <typename U>
126  BufferView (BufferCast<U>& bufferCast) ;
132  BufferView (BufferCast<T>& bufferCast) ;
138  template <typename U>
139  BufferView (const BufferView<U>& view) ;
145  BufferView (const BufferView<T>& view) ;
151  template <typename U>
152  BufferView (std::vector<U>& vec) ;
158  BufferView (std::vector<T>& vec) ;
159 
167  template <typename U, typename = std::enable_if<std::is_const<T>::value>>
168  BufferView (const std::vector<U>& vec) ;
176  template <typename = std::enable_if<std::is_const<T>::value>>
177  BufferView (const std::vector<typename std::remove_const<T>::type>& vec) ;
178  } ;
179 }
nkMemory::BufferView::BufferView
BufferView(const Buffer &buffer)
nkMemory::BufferView::~BufferView
~BufferView()=default
nkMemory::BufferView::BufferView
BufferView(std::vector< U > &vec)
nkMemory::BufferView::BufferView
BufferView(BufferCast< U > &bufferCast)
nkMemory::BufferView
A view over data.
Definition: BufferView.h:18
nkMemory::BufferView::getData
T * getData() const
nkMemory::BufferView::back
T & back()
nkMemory::BufferView::getSize
unsigned long long getSize() const
nkMemory::BufferView::BufferView
BufferView(const std::vector< U > &vec)
nkMemory::Buffer
A buffer holding binary data.
Definition: Buffer.h:32
nkMemory::BufferView::BufferView
BufferView(T *data, unsigned long long size)
nkMemory::BufferView::BufferView
BufferView(const std::vector< typename std::remove_const< T >::type > &vec)
nkMemory::BufferView::BufferView
BufferView(Buffer &&buffer)=delete
nkMemory::BufferView::operator[]
T & operator[](unsigned long long index)
nkMemory::BufferCast
Holds a Buffer and make it easy to cast the binary data.
Definition: BufferCast.h:18
nkMemory::BufferView::BufferView
BufferView()
nkMemory::BufferView::empty
bool empty() const
nkMemory::BufferView::BufferView
BufferView(const BufferView< U > &view)
nkMemory::BufferView::front
T & front()
nkMemory::BufferView::BufferView
BufferView(const Buffer &buffer, unsigned long long index, unsigned long long length=0)
nkMemory::BufferView::BufferView
BufferView(const BufferView< T > &view)
nkMemory::BufferView::subView
BufferView< T > subView(unsigned long long index, unsigned long long length=0) const
nkMemory::BufferView::BufferView
BufferView(BufferCast< T > &bufferCast)
nkMemory::BufferView::BufferView
BufferView(std::vector< T > &vec)
nkMemory
Encompasses all API of component NilkinsMemory.
Definition: Allocator.h:7